Antifuse devices are used in write once non-volatile memories. An antifuse device usually contains an insulating antifuse layer between two metal or semiconductor layers. When a programming voltage is applied across the antifuse layer, a conductive link is formed between the metal or semiconductor layers to provide a conductive path between these layers. It is desirable to form antifuse devices with high quality antifuse layers to improve device reliability. Furthermore, it is desirable to form memories with antifuse devices with the smallest possible dimensions in order to increase the device density and decrease the cost of the memory.